package com.greenold.check.service;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;

import com.greenold.check.domain.Checkout;
import com.greenold.check.domain.Dto.CheckOutDto;
import org.springframework.web.multipart.MultipartFile;

/**
 * 退住Service接口
 * 
 * @author ruoyi
 * @date 2025-10-13
 */
public interface ICheckoutService 
{
    /**
     * 查询退住
     * 
     * @param id 退住主键
     * @return 退住
     */
    public Checkout selectCheckoutById(String id);

    /**
     * 查询退住列表
     * 
     * @param checkout 退住
     * @return 退住集合
     */
    public List<Checkout> selectCheckoutList(Checkout checkout);



    /**
     * 新增退住
     *
     * @param checkout 退住
     * @return 结果
     */
    public String insertCheckout(Checkout checkout);

    /**
     * 修改退住
     * 
     * @param checkout 退住
     * @return 结果
     */
    public int updateCheckout(Checkout checkout);

    /**
     * 批量删除退住
     * 
     * @param ids 需要删除的退住主键集合
     * @return 结果
     */
    public int deleteCheckoutByIds(String[] ids);

    /**
     * 删除退住信息
     * 
     * @param id 退住主键
     * @return 结果
     */
    public int deleteCheckoutById(String id);
    /*
    *
    * @param file
    * @return url
    * */
    public String uploadFile(MultipartFile file,String name);

    /**
     * @param id
     * @return
     */
    public CheckOutDto selectCheckoutDtoById(String id);

    /**
     * @param jsonBill
     * @param id
     * @param elderId
     * @return
     */
    public String addCheckOutBill(String jsonBill, String id, String elderId);

    /**
     * @param id
     * @return
     */
    public Map<String,Object> getActivityUser(String id);


    public String approval(String num, String checkoutId,String comment);

    public String removeContract(String id, String fileUrl, Date removeData);

    public String uploadRefundVoucher(String id, String refundWay, BigDecimal refundAmount , String refundRemark, MultipartFile refundVoucher);

    public Map<String,Object> getActivityLog(String id);

    public Map<String,String>  getCheckoutId(String processInstanceId );
}
